home *** CD-ROM | disk | FTP | other *** search
/ ETO Development Tools 1 / ETO Development Tools 1.iso / Essentials / Developer Essentials Jul 90 / Programming / MPW Interfaces & Libraries 3.1 / PInterfaces / Power.p < prev    next >
Encoding:
Text File  |  1989-10-13  |  3.4 KB  |  173 lines  |  [TEXT/MPS ]

  1. {
  2. Created: Thursday, September 28, 1989 at 12:17 PM
  3.     Power.p
  4.     Pascal Interface to the Macintosh Libraries
  5.  
  6.     Copyright Apple Computer, Inc.    1989
  7.     All rights reserved
  8. }
  9.  
  10.  
  11. {$IFC UNDEFINED UsingIncludes}
  12. {$SETC UsingIncludes := 0}
  13. {$ENDC}
  14.  
  15. {$IFC NOT UsingIncludes}
  16.     UNIT Power;
  17.     INTERFACE
  18. {$ENDC}
  19.  
  20. {$IFC UNDEFINED UsingPower}
  21. {$SETC UsingPower := 1}
  22.  
  23. {$I+}
  24. {$SETC PowerIncludes := UsingIncludes}
  25. {$SETC UsingIncludes := 1}
  26. {$IFC UNDEFINED UsingTypes}
  27. {$I $$Shell(PInterfaces)Types.p}
  28. {$ENDC}
  29. {$SETC UsingIncludes := PowerIncludes}
  30.  
  31. CONST
  32.  
  33. { PMgrResultCode values
  34.  }
  35.  
  36. pmBusyErr = -13000;         { PMgr stuck busy }
  37. pmReplyTOErr = -13001;        { Timed out waiting to begin reply handshake }
  38. pmSendStartErr = -13002;    { PMgr did not start handshake }
  39. pmSendEndErr = -13003;        { During send, PMgr did not finish handshake }
  40. pmRecvStartErr = -13004;    { During receive, PMgr did not start handshake }
  41. pmRecvEndErr = -13005;        { During receive, PMgr did not finish handshake }
  42.  
  43. { bit positions for PowerClockByte
  44.  }
  45.  
  46. pmSCCBit = 1;                {SCC clock}
  47. pmModemBit = 3;             {Internal modem power}
  48. pmSerialBit = 4;            {Serial drivers power}
  49. pmVoltBit = 6;                {-5 volt power}
  50. pmDevEnableBit = 7;
  51.  
  52. { Masks for PowerClockByte }
  53.  
  54. pmSCCMask = $2;
  55. pmModemMask = $8;
  56. pmSerialMask = $10;
  57. pmVoltMask = $40;
  58. pmDevEnableMask = $80;
  59.  
  60. { Bit positions for ModemByte
  61.  }
  62.  
  63. modemOnBit = 0;
  64. ringWakeUpBit = 2;
  65. modemInstalledBit = 3;
  66. ringDetectBit = 4;
  67. modemOnHookBit = 5;
  68.  
  69. { masks for ModemByte }
  70.  
  71. modemOnMask = $1;
  72. ringWakeUpMask = $4;
  73. modemInstalledMask = $8;
  74. ringDetectMask = $10;
  75. modemOnHookMask = $20;
  76.  
  77. { bit positions for BatteryByte }
  78.  
  79. chargerConnBit = 0;
  80. hiChargeBit = 1;
  81. chargeOverFlowBit = 2;
  82. batteryDeadBit = 3;
  83. batteryLowBit = 4;
  84. connChangedBit = 5;
  85.  
  86. { masks for BatteryByte }
  87.  
  88. chargerConnMask = $1;
  89. hiChargeMask = $2;
  90. chargeOverFlowMask = $4;
  91. batteryDeadMask = $8;
  92. batteryLowMask = $10;
  93. connChangedMask = $20;
  94.  
  95. { Commands for PMOp function }
  96.  
  97. powerCntl = $10;            { Power/clock control }
  98. powerRead = $18;            { Power/clock control }
  99. modemRead = $58;            { Internal modem setup }
  100. batteryRead = $68;            { Battery/charger level and status }
  101. setWakeUp = $80;            { Set Wake-up timer }
  102. disableWakeUp = $82;        { Disable Wake-up timer }
  103. readWakeUp = $88;            { Read Wake-up timer }
  104.  
  105. { SleepQRec.sleepQFlags
  106.  }
  107.  
  108. noCalls = 1;
  109. noRequest = 2;
  110.  
  111.  
  112. TYPE
  113.  
  114. { Data bytes types for use in transmit and receive buffers }
  115. PowerClockByte = Byte;
  116. ModemByte = Byte;
  117. BatteryByte = Byte;
  118.  
  119. PMResultCode = LongInt;
  120.  
  121.  
  122. PMParamBlockPtr = ^PMParamBlock;
  123. PMParamBlock = RECORD
  124.     pmCommand: INTEGER;
  125.     pmCount: INTEGER;
  126.     pmSendBuff: Ptr;
  127.     pmReceiveBuff: Ptr;
  128.     END;
  129.  
  130. SleepQRecPtr = ^SleepQRec;
  131. SleepQRec = RECORD
  132.     sleepQLink: SleepQRecPtr;
  133.     sleepQType: INTEGER;    {type = 16}
  134.     sleepQProc: ProcPtr;    {Pointer to sleep routine}
  135.     sleepQFlags: INTEGER;
  136.     END;
  137.  
  138.  
  139.  
  140. FUNCTION PMOp(pBlockPtr: PMParamBlockPtr): PMResultCode;
  141.     INLINE $205F,$A085,$2E80;
  142. FUNCTION IdleUpdate: LONGINT;
  143.     INLINE $A285,$2E80;
  144. FUNCTION GetCPUSpeed: LONGINT;
  145.     INLINE $70FF,$A485,$2E80;
  146. PROCEDURE EnableIdle;
  147.     INLINE $7000,$A485;
  148. PROCEDURE DisableIdle;
  149.     INLINE $7001,$A485;
  150. PROCEDURE SleepQInstall(qRecPtr: SleepQRecPtr);
  151.     INLINE $205F,$A28A;
  152. PROCEDURE SleepQRemove(qRecPtr: SleepQRecPtr);
  153.     INLINE $205F,$A48A;
  154. PROCEDURE AOn;
  155.     INLINE $7004,$A685;
  156. PROCEDURE AOnIgnoreModem;
  157.     INLINE $7005,$A685;
  158. PROCEDURE BOn;
  159.     INLINE $7000,$A685;
  160. PROCEDURE BOnIgnoreModem;
  161.     INLINE $7001,$A685;
  162. PROCEDURE AOff;
  163.     INLINE $7084,$A685;
  164. PROCEDURE BOff;
  165.     INLINE $7080,$A685;
  166.  
  167. {$ENDC}    { UsingPower }
  168.  
  169. {$IFC NOT UsingIncludes}
  170.     END.
  171. {$ENDC}
  172.  
  173.